package com.meta.act.app.system.repository.impl;

import com.meta.framework.util.BeanUtil;
import com.meta.act.app.system.mapper.TenantExtMapper;
import com.meta.act.app.system.repository.TenantExtRepository;
import com.meta.act.app.tenant.entity.TenantExt;
import com.meta.act.app.tenant.req.ro.TenantExtRo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;

import java.util.List;

/**
 *  租户扩展信息表
 * @Title:      TenantExtRepositoryImpl
 * @Author:     Simon
 * @Remark:     The modified content
 * @CreateDate: 2020-11-04 15:23:04
 * @Version:    v2.0
 */
@Service
public class TenantExtRepositoryImpl implements TenantExtRepository {

	@Autowired
	private TenantExtMapper tenantExtMapper;

	/**
	 * insert tenantExt info
	 * @method      insertTenantExt
	 * @param       tenantExt:
	 * @return      void
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	@Override
	public void insertTenantExt(TenantExt tenantExt){
			tenantExtMapper.insertTenantExt(tenantExt);
	}

	/**
	 * batch insert tenantExt info
	 * @method      insertTenantExt
	 * @param       tenantExts:
	 * @return      void
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	@Override
	public void batchInsertTenantExt(List<TenantExt> tenantExts){
			tenantExtMapper.batchInsertTenantExt(tenantExts);
	}

	/**
	 * update tenantExt info
	 * @method      updateTenantExt
	 * @param       tenantExt:
	 * @return      int
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	@Override
	public int updateTenantExt(TenantExt tenantExt){
			return tenantExtMapper.updateTenantExt(tenantExt);
	}

	/**
	 * update tenantExt info by Pk
	 * @method      updateTenantExtByPk
	 * @param       tenantExt:
	 * @return      int
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	@Override
	public int updateTenantExtByPk(TenantExt tenantExt){
		return tenantExtMapper.updateTenantExtByPk(tenantExt);
	}

	/**
	 * list tenantExt info
	 * @method      listTenantExt
	 * @param       tenantExt:
	 * @return      List<TenantExt>
	 * @author      Simon
	 * @date        2020-11-04 15:23:04
	 */
	@Override
	public List<TenantExt> listTenantExt(TenantExt tenantExt){
			return tenantExtMapper.listTenantExt(BeanUtil.copyProperties(TenantExtRo.class,tenantExt));
	}

	@Override
	public TenantExt getTenantExt(Long tenantId) {
		if(tenantId == null ){
			return null;
		}
		TenantExtRo ro = new TenantExtRo();
		ro.setTenantId(tenantId);
		List<TenantExt> tenantExtList = tenantExtMapper.listTenantExt(ro);
		if(CollectionUtils.isEmpty(tenantExtList))
		{
			return null;
		}
		return tenantExtList.get(0);
	}

}
